Цифровой рубль


Цифровой рубль — это цифровая форма рубля.

Сейчас у нас есть наличная (банкноты и монеты) и безналичная (деньги на счетах) форма национальной валюты, а в дополнение к ним появилась ещё и цифровая.

Счета цифрового рубля будут открываться на платформе Центробанка. На этих счетах будет храниться цифровой рубль.

Операции с цифровыми рублями будут проходить на ПЦР.

Доступ к счетам цифрового рубля будет возможен через мобильные приложения банков и интернет‑банки.

По эквайрингу прием ЦР осуществляется в рамках Универсального платёжного кода

1. Динамический QR‑код:

1.1. Запрос регистрации динамического УПК (универсального одноразового платёжного кода)

Сгенерировать универсальный одноразовый платёжный код возможно с помощью уже существующего метода «GetQRCd».
Сгенерированный QR‑код возможно оплатить как через СБП, так и с использованием ЦР.
При этом в настройках ТСП на ПШ Банка обязательно должен быть указан счёт ЦР.

1.2. Запрос статуса оплаты по динамическому УПК

Статус оплаты универсального одноразового платёжного кода возможно проверить с помощью уже существующего метода «GetQRCstatus».
При этом, в ответе к уже существующим статусам, добавляется еще два новых статуса для ЦР: «ENDD» и «ACDR».

Код ключаТип данныхrequiredНазначение
statusString(an‑10)y

При оплате по Цифровом рублю:

  1. ENDD — платёж с расчётами в ЦР обработан, но результат выполнения неизвестен (успех или отказ)

  2. ACDR — передаётся статус (аналог ACWP при оплате СБП C2B), если есть уведомление от ПлЦР об оплате

2. Кассовая платёжная ссылка

2.1 Запрос регистрации кассового УПК (универсального многоразового платёжного кода)

Сгенерировать универсальный многоразовый платёжный код возможно с помощью уже существующего метода «RegCashQRc».
Сгенерированный QR-код возможно оплатить как через СБП, так и с использованием ЦР.
При этом в настройках ТСП на ПШ Банка обязательно должен быть указан счёт ЦР.

2.2 Запрос статуса оплаты по кассовому УПК

Статус оплаты кассового универсального многоразового платёжного кода возможно проверить с помощью уже существующего метода «GetQRCstatus».
При этом, в ответе к уже существующим статусам, добавляется ещё два новых статуса для ЦР: «ENDD» и «ACDR».

Код ключаТип данныхrequiredНазначение
statusString(an‑10)y

При оплате по Цифровом рублю:

  1. ENDD — платёж с расчётами в ЦР обработан, но результат выполнения неизвестен (успех или отказ)

  2. ACDR — передаётся статус (аналог ACWP при оплате СБП C2B), если есть уведомление от ПлЦР об оплате

2.3. Изменение параметров кассового УПК (универсального многоразового платёжного кода)

Запрос «ChangeAccForCashUniQr» направляется ТСП в Банк для выполнения запроса УПК API «Изменение параметров Многоразового/Кассового УПК», предназначенного для изменения отдельных параметров Многоразового или Кассового УПК, заданных при регистрации УПК.

Для Многоразового или Кассового УПК могут быть изменены:

  • •

    Уникальный идентификатор терминала (параметр TermNo)

  • •

    Получатель денежных средств в Переводе УПК или ТСП получателя (параметр merchantId). Новое значение merchantId может принадлежать как тому же ЮЛ, ИП или Самозанятому, которому принадлежало прежнее значение merchantId, так и другому ЮЛ, ИП или Самозанятому, зарегистрированному в НСПК

  • •

    Ссылка для автоматического возврата Покупателя из приложения Банка в приложение или на сайт ТСП (параметр redirectUrl)

  • •

    Набор Платёжных сервисов, с использованием которых может быть выполнен Перевод УПК по данному Многоразовому/Кассовому УПК и реквизиты для зачисления денежных средств в Переводе УПК, выполненном с использованием того или иного Платёжного сервиса, например, Счет ТСП в Банке ТСП, на который будут зачислены денежные средства в результате выполнения Операции СБП C2B (параметры Account и AccountDR)

В ответе ПШ Банка возвращает результат обработки запроса и, в случае успешной обработки — значения параметров, полученных в ответе от НСПК.

Метод ChangeAccForCashUniQr

a) Описание параметров запроса:

Код ключаТип данныхrequiredНазначение
commandString (an-1…50)yТип запроса. Константа «ChangeAccForCashUniQr»
TermNoString (an‑20)yУникальный идентификатор терминала
messageIDString (ans‑1024)oУникальный идентификатор сообщения, GUID
qrcIdString (32)oИдентификатор Кассового УПК
accountString (an‑20)oНовый счёт ЮЛ для УПК:
если заполнено — будет изменён счёт для оплаты через СБП в УПК
если не заполнено — значение берётся из поля Account справочника терминалов
accountDRString (55)oНовый счёт ЮЛ для ЦР:
если заполнено — будет изменён счёт для оплаты ЦР в УПК
если не заполнено — значение берётся из поля AccountDR справочника терминалов
NewTermNoString (an‑20)oНовый уникальный идентификатор терминала.
Поле обязательно, если НЕ переданы account, accountDR, NewMerchantId, redirectUrl
NewMerchantIdString (an‑12)oНовый Id мерчанта (магазина) в НСПК.
Поле обязательно, если НЕ переданы account, accountDR, NewTermNo, redirectUrl
redirectUrlString (ans‑1024)o

Содержит ссылку для автоматического возврата в приложение или на сайт ТСП.

Допускаются только символы в кодировке ASCII. Формат должен соответствовать правилам кодировки URL.

Если требуется использовать в redirectUrl кириллические символы, необходимо перекодировать их в соответствующий ASCII код, используя percent-encoded octets согласно RFC3986

paymentPageUrlString (ans‑1024)oСсылка для перенаправления Покупателя на Платёжную страницу Участника Сервиса УПК
fraudScoreStringoИндикатор Подозрительной Операции Банка ТСП

b) Примерный формат запроса:

1{
2    "command": "ChangeAccForCashUniQr",
3    "TermNo": "90080567",
4    "messageID": "f9aa54ff-a615-44b8-aa6c-acab655c89f8",
5    "qrcId": "BS200031LP9DVTOR80O83FQ2ILIADFLM",
6    "account": "40201810100000088000",
7    "accountDR": "g.ab.cbrdc.wlt.clt.abcd0123-ab12-4a12-89ab-abcdef01234G",
8    "redirectUrl": "https://alfabank.ru/sme/payservice/sbp/",
9    "paymentPageUrl": " https://alfabank.ru/sme/payservice/sbp/",
10    "fraudScore": "0000000000000000",
11    "NewTermNo": "10000234",
12    "NewMerchantId": "MA0000020651"
13}

Правила заполнения и интерпретации параметров:

  • •

    В запросе должен быть заполнен хотя бы один из параметров: account, accountDR, NewTermNo, NewMerchantId, redirectUrl. Если ни один из параметров не указан — будет возвращена ошибка c ErrorCode = "90" и message = "Не указан ни один из обязательных параметров"

  • •

    account — будет выполнено изменение счёта ЮЛ, ИП или самозанятого для расчётов через СБП зарегистрированного УПК. Если значение параметра не передано в запросе — значение берётся из справочника терминалов

  • •

    accountDR — будет выполнено изменение/добавление счета ЮЛ, ИП или самозанятого для расчётов ЦР зарегистрированного УПК. Если значение параметра не передано в запросе — значение берётся из справочника терминалов/ЮЛ.
    Если параметр accountDR был передан в запросе, но длина его значения отличается от 55 — будет возвращена ошибка c ErrorCode = "301" и message = "Некорректно заполнены данные: Параметр accountDR должен содержать 55 символов"

  • •

    NewTermNo — будет выполнено изменение номера терминала для зарегистрированной Кассовой ссылки СБП. Новый номер терминала должен принадлежать ТСТ текущего терминала TermNo, или ТСТ указанного NewMerchantId запроса

  • •

    NewMerchantId — будет выполнено изменение ТСТ для зарегистрированной Кассовой ссылки СБП. Если поле NewTermNo в запросе отсутствует, то в справочнике ТСП (мерчанты) будет выполнена перепривязка существующего TermNo к новому NewMerchantId

  • •

    redirectUrl — будет выполнено изменение ссылки автоматического возврата в приложение или на сайт ТСП для зарегистрированного Кассового УПК

c) Описание параметров ответа:

Код ключаТип данныхrequiredНазначение
ErrorCodeString (an‑20)yКод ответа*
messageString (ans‑1024)yРасшифровка кода ответа**
messageIDString (ans‑1024)oУникальный идентификатор сообщения, GUID — если ErrorCode = 0
qrcIdString (an‑32)oИдентификатор QR-кода
TermNoString (an‑20)yУникальный идентификатор терминала
accountString (an‑20)y/oCчёт для оплаты через СБП.
В ответе должен присутствовать один из параметров account или accountDR, либо оба
accountDRString (55)y/oCчёт для оплаты ЦР.
В ответе должен присутствовать один из параметров account или accountDR, либо оба
merchantIdString (an‑12)yId мерчанта (магазина) в НСПК
statusString (an‑20)oСтатус регистрации Платёжной или Информационной ссылки СБП («CREATED» — если ErrorCode=0)

*, ** Таблица возможных кодов ответа приведена в приложении 2.

d) Примерный формат ответа:

  • •

    200 ОК

1{
2    "ErrorCode": "0",
3    "message": "OK",
4    "TermNo": "10000234",
5    "messageID": "f9aa54ff-a615-44b8-aa6c-acab655c89f8",
6    "qrcId": "BS200031LP9DVTOR80O83FQ2ILIADFLM",
7    "account": "40201810100000088000",
8    "accountDR": "g.ab.cbrdc.wlt.clt.abcd0123-ab12-4a12-89ab-abcdef01234G",
9    "status": "UPDATED",
10    "merchantId": "MA0000020651"
11}
  • •

    400 Bad Request

{
    "ErrorCode": "Код ответа",
    "message": "Расшифровка кода ответа"
}

3. Нотификация Клиента-получателя об исполнении перевода ЦР С2B

Сообщение отправляется из ПШ Банка на сервер ТСП и содержит Извещение Клиента-получателя об исполнении перевода ЦР (С2B) после получения соответствующего уведомления от ПлЦР.

Метод paymentDR/notification

a) Описание параметров запроса:

Код ключаТип данныхrequiredНазначение
commandString (an‑1…50)oКонстанта «paymentDR/notification»
uniQrIdString (an‑32)oИдентификатор платежа в системе ЮЛ‑получателя
operationIdStringoИдентификатор операции на ПлЦР
statusString (an‑20)o

Статус платежа на ПлЦР

ACDR — передаётся статус (аналог ACWP при оплате СБП C2B), если есть уведомление от ПлЦР об плате

amountString (an‑1…12)oСумма платежа в рублях с копейками
timestampYYYY-MM-DDThh: mm: ss[.SSS]oДата и время исполнения распоряжения на ПлЦР
payrrnString (n‑12)yРеференсный номер платежа
BatchIdString (n‑4…8)yУникальный идентификатор смены (если смена терминала открыта)
TermNoString (an‑20)yУникальный идентификатор терминала в AWGW
CreditDatePosString (ans 1‑256)yДата операции, установленная Банком Получателя в ходе обработки уведомления НСПК
merchantNameString (140)yНаименование ТСП
purposeString (ans‑210)yНазначение платежа

b) Примерный формат запроса:

1{
2    "command": "paymentDR/notification",
3    "uniQrId": "AD2000670LSS7DN18SJQDNP4B05KLJL1",
4    "operationId": "546464AX45546",
5    "status": "ACWP",
6    "amount": "10241.21",
7    "timestamp": "2024-08-01T10:15:00.000Z",
8    "payrrn": "102345678912",
9    "BatchId": "998844",
10    "TermNo": "90080567",
11    "CreditDatePos": "20240802",
12    "merchantName": "Рога и Копыта",
13    "purpose": "Кофе и булочка"
14}

В ответ ожидается:

  • •

    http-код «200» — Успешный ответ (Уведомление получено)

  • •

    http-код «500» — Внутренняя ошибка